{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# XGBoost Parameter Tuning for Rental Listing Inquiries Dataset\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 特征工程\n",
    "所有的特征处理也只做最基本的参考，可自行尝试更多的特征工程工作。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 加载需要的库:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#载入数据:\n",
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath + 'RentListingInquries_FE_train.csv')\n",
    "test = pd.read_csv(dpath + 'RentListingInquries_FE_test.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((49352, 228), (74659, 227))"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.shape, test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 看看数据的基本情况"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 拿前5条出来看看"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "      <th>price_bathrooms</th>\n",
       "      <th>price_bedrooms</th>\n",
       "      <th>room_diff</th>\n",
       "      <th>room_num</th>\n",
       "      <th>Year</th>\n",
       "      <th>Month</th>\n",
       "      <th>Day</th>\n",
       "      <th>...</th>\n",
       "      <th>walk</th>\n",
       "      <th>walls</th>\n",
       "      <th>war</th>\n",
       "      <th>washer</th>\n",
       "      <th>water</th>\n",
       "      <th>wheelchair</th>\n",
       "      <th>wifi</th>\n",
       "      <th>windows</th>\n",
       "      <th>work</th>\n",
       "      <th>interest_level</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.5</td>\n",
       "      <td>3</td>\n",
       "      <td>3000</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>750.000000</td>\n",
       "      <td>-1.5</td>\n",
       "      <td>4.5</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>24</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>5465</td>\n",
       "      <td>2732.5</td>\n",
       "      <td>1821.666667</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>12</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2850</td>\n",
       "      <td>1425.0</td>\n",
       "      <td>1425.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>3275</td>\n",
       "      <td>1637.5</td>\n",
       "      <td>1637.500000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>18</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>4</td>\n",
       "      <td>3350</td>\n",
       "      <td>1675.0</td>\n",
       "      <td>670.000000</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 228 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   bathrooms  bedrooms  price  price_bathrooms  price_bedrooms  room_diff  \\\n",
       "0        1.5         3   3000           1200.0      750.000000       -1.5   \n",
       "1        1.0         2   5465           2732.5     1821.666667       -1.0   \n",
       "2        1.0         1   2850           1425.0     1425.000000        0.0   \n",
       "3        1.0         1   3275           1637.5     1637.500000        0.0   \n",
       "4        1.0         4   3350           1675.0      670.000000       -3.0   \n",
       "\n",
       "   room_num  Year  Month  Day       ...        walk  walls  war  washer  \\\n",
       "0       4.5  2016      6   24       ...           0      0    0       0   \n",
       "1       3.0  2016      6   12       ...           0      0    0       0   \n",
       "2       2.0  2016      4   17       ...           0      0    0       0   \n",
       "3       2.0  2016      4   18       ...           0      0    0       0   \n",
       "4       5.0  2016      4   28       ...           0      0    1       0   \n",
       "\n",
       "   water  wheelchair  wifi  windows  work  interest_level  \n",
       "0      0           0     0        0     0               1  \n",
       "1      0           0     0        0     0               2  \n",
       "2      0           0     0        0     0               0  \n",
       "3      0           0     0        0     0               2  \n",
       "4      0           0     0        0     0               2  \n",
       "\n",
       "[5 rows x 228 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 49352 entries, 0 to 49351\n",
      "Columns: 228 entries, bathrooms to interest_level\n",
      "dtypes: float64(9), int64(219)\n",
      "memory usage: 85.8 MB\n"
     ]
    }
   ],
   "source": [
    "train.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练参数设置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_train = train['interest_level']\n",
    "train = train.drop([\"interest_level\"], axis=1)\n",
    "X_train = np.array(train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "max_depth： 树的最大深度。缺省值为6，取值范围为：[1,∞] eta：学习率。为了防止过拟合，更新过程中用到的收缩步长。 eta通过缩减特征的权重使提升计算过程更加保守。缺省值为0.3，取值范围为：[0,1] silent：取0时表示打印出运行时信息，取1时表示以缄默方式运行，不打印运行时信息。缺省值为0 objective： 定义学习任务及相应的学习目标，“binary:logistic” 表示二分类的逻辑回归问题，输出为概率。\n",
    "其他参数取默认值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# prepare cross validation\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#直接调用xgboost内嵌的交叉验证（cv），可对连续的n_estimators参数进行快速交叉验证\n",
    "#而GridSearchCV只能对有限个参数进行交叉验证\n",
    "def modelfit(alg, X_train, y_train, cv_folds=None, early_stopping_rounds=10):\n",
    "    xgb_param = alg.get_xgb_params()\n",
    "    xgb_param['num_class'] = 3\n",
    "    \n",
    "    #直接调用xgboost，而非sklarn的wrapper类\n",
    "    xgtrain = xgb.DMatrix(X_train, label = y_train)\n",
    "        \n",
    "    cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], folds =cv_folds,\n",
    "             metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "  \n",
    "    cvresult.to_csv('1_nestimators.csv', index_label = 'n_estimators')\n",
    "    \n",
    "    #最佳参数n_estimators\n",
    "    n_estimators = cvresult.shape[0]\n",
    "    \n",
    "    # 采用交叉验证得到的最佳参数n_estimators，训练模型\n",
    "    alg.set_params(n_estimators = n_estimators)\n",
    "    alg.fit(X_train, y_train, eval_metric='mlogloss')\n",
    "        \n",
    "    #Predict training set:\n",
    "    #train_predprob = alg.predict_proba(X_train)\n",
    "    #logloss = log_loss(y_train, train_predprob)\n",
    "\n",
    "   #Print model report:\n",
    "   # print (\"logloss of train :\" )\n",
    "   # print logloss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#params = {\"objective\": \"multi:softprob\", \"eval_metric\":\"mlogloss\", \"num_class\": 9}\n",
    "xgb1 = XGBClassifier(\n",
    "        learning_rate =0.1,\n",
    "        n_estimators=1000,  #数值大没关系，cv会自动返回合适的n_estimators\n",
    "        max_depth=5,\n",
    "        min_child_weight=1,\n",
    "        gamma=0,\n",
    "        subsample=0.3,\n",
    "        colsample_bytree=0.8,\n",
    "        colsample_bylevel=0.7,\n",
    "        objective= 'multi:softprob',\n",
    "        seed=3)\n",
    "\n",
    "modelfit(xgb1, X_train, y_train, cv_folds = kfold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ec185c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('1_nestimators.csv')\n",
    "        \n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(0, cvresult.shape[0])\n",
    "        \n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators4_1.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x15d34c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('1_nestimators.csv')\n",
    "\n",
    "cvresult = cvresult.iloc[100:]\n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(50,cvresult.shape[0]+50)\n",
    "        \n",
    "fig = pyplot.figure(figsize=(10, 10), dpi=100)\n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators_detail.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
